<?php
class TbfError {
    //开发模式错误处理
    static function setAsDevMode(){
        error_reporting(E_ALL);
        ini_set("display_errors", 1);
    }
    //需要返回给客户端的错误
    static function client($reason){
        if (!empty(self::$clientErrorHandler)){
            $callback = self::$clientErrorHandler;
            $callback($reason);
            return;
        }
        throw new Exception($reason);
    }
    //没有预料到的错误(通常是编程逻辑错误),不应该显示给客户端
    static function unExpect($reason){
        throw new Exception($reason);
    }

    //设置客户端错误的处理回调, 预期行为应该是中断的处理过程(和抛异常类似)
    private static $clientErrorHandler = null;
    static function setClientErrorHandler( $handler ){
        self::$clientErrorHandler = $handler;
    }
}